package com.campanyes.camp2011;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import jxl.read.biff.BiffException;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.campanyes.entitites.Configuracion;
import com.campanyes.entitites.Scripts;

public class LanzarCargaTotal {

	private static final Logger logger = Logger.getLogger(LanzarCargaTotal.class);
	
	public static void main(String args[]) throws ClassNotFoundException, SQLException, BiffException, IOException{
		PropertyConfigurator.configure(args[0]+args[2]);
		
		Configuracion conf = new Configuracion(args[0], args[1]);
		Class.forName(conf.getBBDD_DRIVER());		
		Connection conexion = DriverManager.getConnection ("jdbc:mysql://"+conf.getBBDD_HOST()+"/"+conf.getBBDD_DATABASE(),conf.getBBDD_USER(), conf.getBBDD_PASSWORD());
		Statement s = conexion.createStatement();
		
		Scripts scripts = new Scripts(s);
		
		//Generamos las tablas del 2011
		logger.info("Generacion de tablas del 2011");
		CargarCampanya2011DeExcel cargarcamp = new CargarCampanya2011DeExcel();
		cargarcamp.runMain(args);
		
		//Creamos tablas generales
		logger.info("Generacion de tablas generales");
		scripts.crearTablasEsquema();
		
		//Insertamos los datos del 2011
		logger.info("Insercion de datos 2011");
		scripts.insertarDatosForestals2011();		
		
		//Insertamos los datos del 2012
		logger.info("Insercion de datos 2012");
		Leer_AOF_PROV_ADMESOS leerAOF = new Leer_AOF_PROV_ADMESOS();
		leerAOF.runMain(args);
		
		//Creamos la tabla final prediccio_2012
		logger.info("Creacion de tablas 2012");
		scripts.insertarDatosPrediccio2012();
		scripts.actualizarCamposExtraPrediccion2012();
		
		//Cargamos los EPAFS_2011
		logger.info("Carga de los EPAFS 2011");
		Leer_BORSA_EPAF_2011 epafs2011 = new Leer_BORSA_EPAF_2011();
		epafs2011.runMain(args);		
		
		//Actualizamos el campo si fue EPAF 2011
		logger.info("Actualizacion del campo 'fue_epaf_2011' si fue EPAF2011");
		scripts.actualizarCampoFueEPAF2011();
		
		//Cargamos los EPAFS_2010
		logger.info("Carga de los EPAFS 2010");
		Leer_BORSA_EPAF_2010 epafs2010 = new Leer_BORSA_EPAF_2010();
		epafs2010.runMain(args);		
		
		//Actualizamos el campo si fue EPAF 2011
		logger.info("Actualizacion del campo 'fue_epaf_2010' si fue EPAF2010");
		scripts.actualizarCampoFueEPAF2010();
		
		//Cargamos los EPAFS_2011 que no hicieron de epaf
		logger.info("Carga de los EPAFS 2011 que no hicieron de epaf");
		Leer_BORSA_EPAF_2011_NO_VAN_FER_EPAF epafs2011_no_trabajo = new Leer_BORSA_EPAF_2011_NO_VAN_FER_EPAF();
		epafs2011_no_trabajo.runMain(args);		
		
		//Actualizamos el campo si fue EPAF 2011 que no hicieron de epaf
		logger.info("Actualizacion del campo 'fue_epaf_2011_PERO_NO_TRABAJO' si paso las pruebas pero no trabajo (esta en la bolsa de trabajo)");
		scripts.actualizarCampoFueEPAF2011_NO_VAN_FER_EPAF();

		//Actualizamos el campo si fue EPAF 2011 que no hicieron de epaf
		logger.info("Carga de los FORESTALS 2012");
		Leer_PROV_TOTALS_PUNTUACIO_GIRONA forestalsGirona2012 = new Leer_PROV_TOTALS_PUNTUACIO_GIRONA();
		forestalsGirona2012.runMain(args);	
		
		logger.info("FIN DEL PROCESO TOTAL");
	}
}
